home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / misc~1 / 4 / checbook.bas < prev    next >
Encoding:
BASIC Source File  |  1986-03-06  |  28.0 KB  |  783 lines

  1. 10    ' CHECKBOOK VERSION 2.0
  2. 20    ' BY BILL HOWE (COMPU-SERVE # 70215,107)
  3. 30    '
  4. 40    '
  5. 50    '
  6. 60    title$=" CHECKBOOK "
  7. 70    title$=chr$(32)+chr$(14)+chr$(15)+title$
  8. 80    title$=title$+chr$(14)+chr$(15)+chr$(32)
  9. 90    gosub 100:goto 210
  10. 100   poke systab+24,1
  11. 110   a#=gb
  12. 120   gintin=peek(a#+8)
  13. 130   poke gintin+0,peek(systab+8)
  14. 140   poke gintin+2,2
  15. 150   s#=gintin+4
  16. 160   title$=title$+chr$(0)
  17. 170   poke s#,varptr(title$)
  18. 180   gemsys(105)
  19. 190   poke systab+24,0
  20. 200   return
  21. 210   FULLW 2:CLEARW 2
  22. 220   CLEAR
  23. 230   MESSAGE$ = "REMOVE THE PROGRAM DISK AND INSERT DATA DISK":GOSUB DISPLAY.MESSAGE
  24. 240   MESSAGE$ = "WHEN READY PRESS [RETURN/ENTER] KEY TO CONTINUE":GOSUB DISPLAY.MESSAGE.WAIT
  25. 250   GOTOXY 8,8
  26. 260   LINE INPUT "ENTER TODAY'S DATE: MM/DD/YY ";SYSDATE$
  27. 270   DATE$ = SYSDATE$
  28. 280   REPDATE$ = SYSDATE$
  29. 290   GOSUB CHECK.DATE
  30. 300   IF DATE$ = "BAD" THEN GOSUB CLS.SCREEN:GOTO 250
  31. 310   OPEN "R",1,"CHECK.DAT",112
  32. 320   FIELD #1, 8 AS CDATE$,4 AS CDEPOSIT$,4 AS CNUMBER$,35 AS CTO$,35 AS CFOR$,4 AS CAMOUNT$,4 AS CBALANCE$,17 AS COUTSTANDING$,1 AS CCODE$
  33. 330   TRANS = LOF(1)
  34. 340   IF TRANS > 0 THEN GOSUB READ.SYSTEM.RECORD
  35. 350   '
  36. 360   '
  37. 370   MASTER.MENU:
  38. 380   '
  39. 390   '
  40. 400   CLEARW 2:Z = 0
  41. 410   GOTOXY 0,10: PRINT STRING$(72,"*")
  42. 420   GOTOXY 0,11: PRINT "( 1 ) ENTER TRANSACTION              ( 2 )"
  43. 430   GOTOXY 37,11:PRINT " DISPLAY TRANSACTION"
  44. 440   GOTOXY 0,12:PRINT "( 3 ) DELETE TRANSACTION             ( 4 )"
  45. 450   GOTOXY 37,12:PRINT " BALANCE TO STATEMENT"
  46. 460   GOTOXY 0,13:PRINT "( 5 ) PRINT CHECKS                   ( 6 )"
  47. 470   GOTOXY 37,13:PRINT " PRINT TRANSACTION REPORT"
  48. 480   GOTOXY 0,14:PRINT "( 7 ) INITALIZE DISK                 ( 8 )"
  49. 490   GOTOXY 37,14:PRINT " END PROGRAM"
  50. 500   '
  51. 510   '
  52. 520   ENTER.CHOICE:
  53. 530   '
  54. 540   '
  55. 550   IF TRANS = 0 THEN MESSAGE$ = "NO DATA FILE FOUND":GOSUB DISPLAY.MESSAGE:GOSUB INITIALIZE.THE.DISK
  56. 560   GOTOXY 0,16
  57. 570   PRINT STRING$(72," ");
  58. 580   GOTOXY 0,16
  59. 590   CHOICE = 0
  60. 600   CHOICE$ = ""
  61. 610   LINE INPUT "? ";CHOICE$
  62. 620   CHOICE = VAL(CHOICE$)
  63. 630   IF CHOICE = 8 THEN CLEARW 2:CLOSE
  64. 640   IF CHOICE = 8 THEN MESSAGE$ = "REMOVE DATA DISK AND INSERT PROGRAM DISK":GOSUB DISPLAY.MESSAGE
  65. 650   IF CHOICE = 8 THEN MESSAGE$ = "WHEN READY PRESS [RETURN/ENTER] KEY TO CONTINUE":GOSUB DISPLAY.MESSAGE.WAIT
  66. 660   IF CHOICE = 8 THEN END
  67. 670   IF CHOICE = 1 GOTO ENTER.TRANS
  68. 680   IF CHOICE = 2 GOTO DISPLAY.TRANSACTION
  69. 690   IF CHOICE = 3 GOTO DELETE.TRANS
  70. 700   IF CHOICE = 4 THEN GOTO BALANCE.TO.STATEMENT
  71. 710   IF CHOICE = 5 THEN GOTO PRNT.CHECKS
  72. 720   IF CHOICE = 6 THEN GOTO PRNT.REPORT
  73. 730   IF CHOICE = 7 THEN GOSUB INITIALIZE.THE.DISK
  74. 740   IF CHOICE$ = "," OR CHOICE$ = "<" THEN GOTO DISPLAY.TRANS.TWO
  75. 750   IF CHOICE$ = "." OR CHOICE$ = ">" THEN GOTO DISPLAY.TRANS.TWO
  76. 760   IF CHOICE$ = "X" THEN GOTO MASTER.MENU
  77. 770   GOTO ENTER.CHOICE
  78. 780   '
  79. 790   '
  80. 800   ENTER.TRANS:
  81. 810   '
  82. 820   '
  83. 830   GOSUB CLEAR.FIELDS
  84. 840   GOSUB BUILD.SCREEN
  85. 850   GOSUB READ.SYSTEM.RECORD
  86. 860   COLOR 2,0,1
  87. 870   GOTOXY 20,0
  88. 880   IF CHECK.NUMBER > 1 THEN PRINT USING "NEXT CHECK NUMBER TO USE -> ####";CHECK.NUMBER + 1
  89. 890   COLOR 1,0,1
  90. 900   Z = TRANS.NUMBER
  91. 910   TRANS.NUMBER = TRANS.NUMBER + 1
  92. 920   IF TRANS.NUMBER = 1 THEN TRANS.NUMBER = 2
  93. 930   GOTOXY 44,9:PRINT USING "Record number -> ####";TRANS.NUMBER
  94. 940   GOSUB CLEAR.FIELDS
  95. 950   GOTOXY 0,9
  96. 960   IF BALANCE < 0 THEN COLOR 2,0,1 ELSE COLOR 1,0,1
  97. 970   PRINT USING "Your current balance is - > $ #,###.##";BALANCE
  98. 980   COLOR 1,0,1
  99. 990   GOTOXY 30,1
  100. 1000  LINE INPUT DATE$
  101. 1010  IF LEN(DATE$) = 0 THEN DATE$ = SYSDATE$
  102. 1020  SYSDATE$ = DATE$
  103. 1030  GOSUB CHECK.DATE
  104. 1040  GOTOXY 29,1:PRINT STRING$(15," ")
  105. 1050  IF DATE$ = "BAD" GOTO 990
  106. 1060  GOTOXY 33,1:PRINT DATE$
  107. 1070  GOTOXY 30,2:LINE INPUT ANSWER$:IF LEN(ANSWER$) > 0 THEN DEPOSIT = VAL(ANSWER$)
  108. 1080  GOTOXY 30,3:LINE INPUT ANSWER$:IF LEN(ANSWER$) > 0 THEN NUMBER = VAL(ANSWER$)
  109. 1090  IF CHECK.NUMBER < 2 THEN GOTO 1110
  110. 1100  IF DEPOSIT = 0 AND NUMBER = 0 THEN NUMBER = CHECK.NUMBER + 1:GOTOXY 31,3:PRINT USING "####";NUMBER
  111. 1110  IF NUMBER < 1 THEN NUMBER = TRANS.NUMBER:GOTOXY 31,3:PRINT USING "####";NUMBER
  112. 1120  IF NUMBER = 1 THEN MESSAGE$ = "BY DOING THIS, YOU ARE RE-SETTING YOUR BALANCE":GOSUB DISPLAY.MESSAGE
  113. 1130  IF NUMBER = 1 THEN BALANCE = DEPOSIT:GOTO 1280
  114. 1140  IF DEPOSIT > 0 THEN GOTO 1150 ELSE GOTOXY 30,4:LINE INPUT TO$
  115. 1150  GOTOXY 30,5:LINE INPUT FOR$:IF DEPOSIT > 0 THEN GOTO 1170
  116. 1160  GOTOXY 30,6:LINE INPUT ANSWER$:IF LEN(ANSWER$) > 0 THEN AMOUNT = VAL(ANSWER$)
  117. 1170  BALANCE = DEPOSIT + BALANCE - AMOUNT
  118. 1180  IF BALANCE < 0 THEN COLOR 2,0,1 ELSE COLOR 1,0,1
  119. 1190  GOTOXY 30,7:PRINT USING "#,###.##";BALANCE
  120. 1200  GOTOXY 0,9
  121. 1210  PRINT USING "Your current balance is - > $ #,###.##";BALANCE
  122. 1220  GOTOXY 0,0:PRINT STRING$(72," ")
  123. 1230  COLOR 1,0,1
  124. 1240  GOSUB TAG.OUTSTANDING
  125. 1250  GOSUB LSET.THE.FIELDS
  126. 1260  PUT #1,TRANS.NUMBER
  127. 1270  IF NUMBER > TRANS.NUMBER THEN CHECK.NUMBER = NUMBER
  128. 1280  GOSUB CLEAR.FIELDS
  129. 1290  GOSUB WRITE.SYSTEM.RECORD
  130. 1300  GOTO ENTER.CHOICE
  131. 1310  '
  132. 1320  '
  133. 1330  WRITE.SYSTEM.RECORD:
  134. 1340  '
  135. 1350  '
  136. 1360  DATE$ = "XX/XX/XX"
  137. 1370  TO$ = " ** SYSTEM"
  138. 1380  FOR$ = "           RECORD **"
  139. 1390  CODE$ = "I"
  140. 1400  DEPOSIT = TRANS.NUMBER
  141. 1410  AMOUNT = CHECK.NUMBER
  142. 1420  GOSUB LSET.THE.FIELDS
  143. 1430  PUT #1,1
  144. 1440  RETURN
  145. 1450  '
  146. 1460  '
  147. 1470  CLS.SCREEN:
  148. 1480  '
  149. 1490  '
  150. 1500  GOTOXY 0,0:PRINT STRING$(72," ")
  151. 1510  GOTOXY 0,1:PRINT STRING$(72," ")
  152. 1520  GOTOXY 0,2:PRINT STRING$(72," ")
  153. 1530  GOTOXY 0,3:PRINT STRING$(72," ")
  154. 1540  GOTOXY 0,4:PRINT STRING$(72," ")
  155. 1550  GOTOXY 0,5:PRINT STRING$(72," ")
  156. 1560  GOTOXY 0,6:PRINT STRING$(72," ")
  157. 1570  GOTOXY 0,7:PRINT STRING$(72," ")
  158. 1580  GOTOXY 0,8:PRINT STRING$(72," ")
  159. 1590  GOTOXY 0,9:PRINT STRING$(72," ")
  160. 1600  RETURN
  161. 1610  '
  162. 1620  '
  163. 1630  TAG.OUTSTANDING:
  164. 1640  '
  165. 1650  '
  166. 1660  OUTSTANDING$ = "** OUTSTANDING **":GOTOXY 44,1:PRINT OUTSTANDING$
  167. 1670  CODE$ = "O"
  168. 1680  RETURN
  169. 1690  '
  170. 1700  '
  171. 1710  BUILD.SCREEN:
  172. 1720  '
  173. 1730  '
  174. 1740  GOTOXY 0,1:PRINT "Transaction date:..............";:PRINT STRING$(40," ")
  175. 1750  GOTOXY 0,2:PRINT "Deposit:.......................";:PRINT STRING$(40," ")
  176. 1760  GOTOXY 0,3:PRINT "Transaction number:............";:PRINT STRING$(40," ")
  177. 1770  GOTOXY 0,4:PRINT "Check made out to:.............";:PRINT STRING$(40," ")
  178. 1780  GOTOXY 0,5:PRINT "For:...........................";:PRINT STRING$(40," ")
  179. 1790  GOTOXY 0,6:PRINT "Amount of check:..............$";:PRINT STRING$(40," ")
  180. 1800  GOTOXY 0,7:PRINT "Balance on this transaction:..$";:PRINT STRING$(40," ")
  181. 1810  RETURN
  182. 1820  '
  183. 1830  '
  184. 1840  LSET.THE.FIELDS:
  185. 1850  '
  186. 1860  '
  187. 1870  LSET CDATE$ = DATE$
  188. 1880  LSET CDEPOSIT$ = MKS$(DEPOSIT)
  189. 1890  LSET CNUMBER$ = MKS$(NUMBER)
  190. 1900  LSET CTO$ = TO$
  191. 1910  LSET CFOR$ = FOR$
  192. 1920  LSET CAMOUNT$ = MKS$(AMOUNT)
  193. 1930  LSET CBALANCE$ = MKS$(BALANCE)
  194. 1940  LSET COUTSTANDING$ = OUTSTANDING$
  195. 1950  LSET CCODE$ = CODE$
  196. 1960  RETURN
  197. 1970  '
  198. 1980  '
  199. 1990  READ.THE.FILE:
  200. 2000  '
  201. 2010  '
  202. 2020  GET 1, TRANSNUMBER
  203. 2030  DATE$ = CDATE$
  204. 2040  DEPOSIT = CVS(CDEPOSIT$)
  205. 2050  NUMBER = CVS(CNUMBER$)
  206. 2060  TO$ = CTO$
  207. 2070  FOR$ = CFOR$
  208. 2080  AMOUNT = CVS(CAMOUNT$)
  209. 2090  BALANCE = CVS(CBALANCE$)
  210. 2100  OUTSTANDING$ = COUTSTANDING$
  211. 2110  CODE$ = CCODE$
  212. 2120  RETURN
  213. 2130  '
  214. 2140  '
  215. 2150  READ.SYSTEM.RECORD:
  216. 2160  '
  217. 2170  '
  218. 2180  TRANSNUMBER = 1
  219. 2190  GOSUB READ.THE.FILE
  220. 2200  CHECK.NUMBER = AMOUNT
  221. 2210  TRANS.NUMBER = DEPOSIT
  222. 2220  RETURN
  223. 2230  '
  224. 2240  '
  225. 2250  CLEAR.FIELDS:
  226. 2260  '
  227. 2270  '
  228. 2280  DATE$ = "":DEPOSIT = 0:NUMBER = 0:TO$ = "":FOR$ = "":AMOUNT = 0
  229. 2290  OUTSTANDING$ = ""
  230. 2300  ANSWER$ = ""
  231. 2310  DATE$ = ""
  232. 2320  CODE$ = ""
  233. 2330  RETURN
  234. 2340  '
  235. 2350  '
  236. 2360  INITIALIZE.THE.DISK:
  237. 2370  '
  238. 2380  '
  239. 2390  GOSUB CLS.SCREEN
  240. 2400  MESSAGE$ = "REMOVE PROGRAM DISK AND INSERT A BLANK FORMATTED DISK":GOSUB DISPLAY.MESSAGE
  241. 2410  GOTOXY 10,16
  242. 2420  COLOR 2,0,1
  243. 2430  LINE INPUT "ARE YOU SURE YOU WANT TO INITIALIZE THE FILE Y/N ";ANSWER$
  244. 2440  IF LEFT$(ANSWER$,1) = "Y" THEN 2470
  245. 2450  COLOR 1,0,1
  246. 2460  GOTO ENTER.CHOICE
  247. 2470  GOSUB CLS.SCREEN
  248. 2480  COLOR 1,0,1
  249. 2490  FOR Y = 1 TO 1000
  250. 2500  GOSUB CLEAR.FIELDS
  251. 2510  BALANCE = 0
  252. 2520  CODE$ = "E"
  253. 2530  GOSUB LSET.THE.FIELDS
  254. 2540  PUT 1,Y
  255. 2550  GOTOXY 0,0
  256. 2560  PRINT USING "INITIALIZING RECORD NUMBER - > ####";Y
  257. 2570  NEXT Y
  258. 2580  GOSUB CLS.SCREEN
  259. 2590  TRANS = LOF(1)
  260. 2600  GOSUB READ.SYSTEM.RECORD
  261. 2610  MESSAGE$ = "WHEN READY PRESS [RETURN/ENTER] KEY TO CONTINUE":GOSUB DISPLAY.MESSAGE.WAIT
  262. 2620  MESSAGE$ = "TO SET YOUR BALANCE USE NUMBER -> ( 1 )  ENTER TRANSACTION":GOSUB DISPLAY.MESSAGE
  263. 2630  MESSAGE$ = "THEN USE NUMBER '1' FOR TRANSACTION NUMBER":GOSUB DISPLAY.MESSAGE
  264. 2640  RETURN
  265. 2650  '
  266. 2660  '
  267. 2670  DISPLAY.TRANSACTION:
  268. 2680  '
  269. 2690  '
  270. 2700  GOSUB CLEAR.FIELDS
  271. 2710  GOSUB BUILD.SCREEN
  272. 2720  TRANSNUMBER = 0:ANSWER$ = ""
  273. 2730  GOTOXY 30,3:LINE INPUT ANSWER$:IF LEN(ANSWER$) > 0 THEN TRANSNUMBER = VAL(ANSWER$)
  274. 2740  IF CHOICE = 3 AND TRANSNUMBER = 0 THEN GOTO ENTER.CHOICE
  275. 2750  IF TRANSNUMBER = 1 THEN GOTO DISPLAY.SYSTEM.RECORD
  276. 2760  IF TRANSNUMBER = 0 THEN GOTOXY 30,4:LINE INPUT TO$
  277. 2770  IF TRANSNUMBER = 0 AND LEN(TO$) = 0 THEN GOTOXY 30,5:LINE INPUT FOR$
  278. 2780  IF TRANSNUMBER = 0 AND LEN(TO$) = 0 AND LEN(FOR$) = 0 THEN GOTO ENTER.CHOICE ELSE GOSUB SEARCH.FOR.TRANS
  279. 2790  IF CHOICE = 2 AND CODE$ = "E" THEN MESSAGE$ = "** NOT FOUND **":GOSUB DISPLAY.MESSAGE:GOTO DISPLAY.TRANSACTION
  280. 2800  IF CHOICE = 3 AND CODE$ = "E" THEN MESSAGE$ = "** NOT FOUND **":GOSUB DISPLAY.MESSAGE:GOTO ENTER.CHOICE
  281. 2810  '
  282. 2820  '
  283. 2830  DISPLAY.TRANS:
  284. 2840  '
  285. 2850  '
  286. 2860  IF NUMBER = 1 THEN GOTO DISPLAY.SYSTEM.RECORD
  287. 2870  GOTOXY 0,9
  288. 2880  PRINT STRING$(72," ");
  289. 2890  GOTOXY 30,1:PRINT DATE$
  290. 2900  GOTOXY 30,2:PRINT USING "#,###.##";DEPOSIT
  291. 2910  GOTOXY 30,3:PRINT STRING$(10," ")
  292. 2920  GOTOXY 30,3:PRINT USING "####";NUMBER
  293. 2930  GOTOXY 30,4:PRINT TO$
  294. 2940  GOTOXY 30,5:PRINT FOR$
  295. 2950  GOTOXY 30,6:PRINT USING "#,###.##";AMOUNT
  296. 2960  IF BALANCE < 0 THEN COLOR 2,0,1 ELSE COLOR 1,0,1
  297. 2970  GOTOXY 30,7:PRINT USING "#,###.##";BALANCE
  298. 2980  COLOR 1,0,1
  299. 2990  GOTOXY 44,1:PRINT OUTSTANDING$
  300. 3000  IF CHOICE = 3 THEN RETURN
  301. 3010  IF CHOICE = 4 THEN RETURN
  302. 3020  IF CHOICE = 5 THEN RETURN
  303. 3030  IF CHOICE = 6 THEN RETURN
  304. 3040  IF CHOICE$ = "," OR CHOICE$ = "<" THEN GOTO ENTER.CHOICE
  305. 3050  IF CHOICE$ = "." OR CHOICE$ = ">" THEN GOTO ENTER.CHOICE
  306. 3060  IF C OR D > 0 THEN GOTOXY 0,16:LINE INPUT "CONTINUE SEARCHING Y/N ";ANSWER$:IF LEFT$(ANSWER$,1) = "Y" THEN RETURN ELSE GOTO ENTER.CHOICE
  307. 3070  GOTO ENTER.CHOICE
  308. 3080  '
  309. 3090  '
  310. 3100  DELETE.TRANS:
  311. 3110  '
  312. 3120  '
  313. 3130  GOSUB DISPLAY.TRANSACTION
  314. 3140  GOTOXY 0,16
  315. 3150  LINE INPUT "O.K. TO DELETE Y/N ";ANSWER$
  316. 3160  IF LEFT$(ANSWER$,1) = "N" THEN GOTO ENTER.CHOICE
  317. 3170  IF LEFT$(ANSWER$,1) <> "Y" THEN GOTO 3140
  318. 3180  NUM.HOLD = NUMBER
  319. 3190  DEP.HOLD = DEPOSIT
  320. 3200  AMT.HOLD = AMOUNT
  321. 3210  GOSUB READ.SYSTEM.RECORD
  322. 3220  BALANCE = (BALANCE - DEP.HOLD) + AMT.HOLD
  323. 3230  GOSUB WRITE.SYSTEM.RECORD
  324. 3240  GOSUB CLEAR.FIELDS
  325. 3250  CODE$ = "D":BALANCE = 0
  326. 3260  GOSUB LSET.THE.FIELDS
  327. 3270  PUT 1,NUM.HOLD
  328. 3280  DEP.HOLD = 0:AMT.HOLD = 0
  329. 3290  MESSAGE$ = "--> D E L E T E D <--"
  330. 3300  GOSUB DISPLAY.MESSAGE
  331. 3310  GOTO ENTER.CHOICE
  332. 3320  '
  333. 3330  '
  334. 3340  BALANCE.TO.STATEMENT:
  335. 3350  '
  336. 3360  '
  337. 3370  GOTOXY 0,16
  338. 3380  STATEMENT = 0:C.DEPOSIT = 0:Y.DEPOSIT = 0:C.AMOUNT = 0:Y.AMOUNT = 0
  339. 3390  SUB.TOTAL = 0:NEW.TOTAL = 0:BAD.AMOUNT = 0
  340. 3400  STATEMENT$ = "":H.BALANCE = 0
  341. 3410  LINE INPUT "ENTER STATEMENT BALANCE - > $ ";STATEMENT$
  342. 3420  STATEMENT = VAL(STATEMENT$)
  343. 3430  GOSUB READ.SYSTEM.RECORD
  344. 3440  H.BALANCE = BALANCE
  345. 3450  FOR X = 2 TO TRANS.NUMBER
  346. 3460  GOSUB CLEAR.FIELDS
  347. 3470  TRANSNUMBER = X
  348. 3480  GOSUB READ.THE.FILE
  349. 3490  IF CODE$ = "O" OR CODE$ = "C" OR CODE$ = "P" THEN GOSUB BUILD.SCREEN
  350. 3500  IF CODE$ = "O" OR CODE$ = "C" OR CODE$ = "P" THEN GOSUB DISPLAY.TRANS
  351. 3510  ANSWER$ = ""
  352. 3520  COLOR 2,0,1
  353. 3530  IF CODE$ = "O" OR CODE$ = "C" OR CODE$ = "P" THEN GOTOXY 40,16:LINE INPUT "C L E A R E D  Y/N ";ANSWER$
  354. 3540  COLOR 1,0,1
  355. 3550  IF LEFT$(ANSWER$,1) = "Y" THEN C.DEPOSIT = (C.DEPOSIT + DEPOSIT)
  356. 3560  IF LEFT$(ANSWER$,1) = "N" THEN Y.DEPOSIT = (Y.DEPOSIT + DEPOSIT)
  357. 3570  IF LEFT$(ANSWER$,1) = "Y" THEN C.AMOUNT = (C.AMOUNT + AMOUNT)
  358. 3580  IF LEFT$(ANSWER$,1) = "N" THEN Y.AMOUNT = (Y.AMOUNT + AMOUNT)
  359. 3590  IF LEFT$(ANSWER$,1) = "Y" THEN CODE$ = "C"
  360. 3600  IF LEFT$(ANSWER$,1) = "Y" THEN OUTSTANDING$ = "* C L E A R E D *"
  361. 3610  IF LEFT$(ANSWER$,1) = "Y" THEN GOSUB LSET.THE.FIELDS:PUT 1,TRANSNUMBER
  362. 3620  IF LEFT$(ANSWER$,1) = "N" AND CODE$ = "P" THEN OUTSTANDING$ = "** OUTSTANDING **":GOSUB LSET.THE.FIELDS:PUT 1, TRANSNUMBER:GOTO 3640
  363. 3630  IF LEFT$(ANSWER$,1) = "N" THEN CODE$ = "O":OUTSTANDING$ = "** OUTSTANDING **":GOSUB LSET.THE.FIELDS:PUT 1, TRANSNUMBER
  364. 3640  NEXT X
  365. 3650  SUB.TOTAL = STATEMENT + Y.DEPOSIT
  366. 3660  NEW.TOTAL = SUB.TOTAL - Y.AMOUNT
  367. 3670  IF NEW.TOTAL = H.BALANCE THEN GOTO 3790 ELSE BAD.AMOUNT = NEW.TOTAL - H.BALANCE
  368. 3680  IF FIX(NEW.TOTAL) = FIX(H.BALANCE) THEN GOTO 3790
  369. 3690  GOSUB CLS.SCREEN
  370. 3700  GOTOXY 0,10
  371. 3710  MESSAGE$ =  "SORRY, YOU DO NOT BALANCE TO YOUR STATEMENT"
  372. 3720  GOSUB DISPLAY.MESSAGE
  373. 3730  GOTOXY 10,16
  374. 3740  COLOR 2,0,1
  375. 3750  PRINT USING "YOU ARE OFF BY $ #,###.##";BAD.AMOUNT
  376. 3760  COLOR 1,0,1
  377. 3770  FOR X = 1 TO 2500:NEXT X
  378. 3780  GOTO ENTER.CHOICE
  379. 3790  GOSUB CLS.SCREEN
  380. 3800  GOTOXY 0,5
  381. 3810  MESSAGE$ = "CONGRADULATIONS !  YOU ARE IN BALANCE !"
  382. 3820  GOSUB DISPLAY.MESSAGE
  383. 3830  MESSAGE$ = "STANDBY - DOING SOME FILE MAINTENNANCE"
  384. 3840  GOSUB DISPLAY.MESSAGE
  385. 3850  FOR X = 2 TO TRANS.NUMBER
  386. 3860  GOSUB CLEAR.FIELDS
  387. 3870  TRANSNUMBER = X
  388. 3880  GOSUB READ.THE.FILE
  389. 3890  IF CODE$ = "C" THEN CODE$ = "X"
  390. 3900  GOSUB LSET.THE.FIELDS
  391. 3910  PUT 1,TRANSNUMBER
  392. 3920  NEXT X
  393. 3930  GOTO ENTER.CHOICE
  394. 3940  '
  395. 3950  '
  396. 3960  DISPLAY.MESSAGE:
  397. 3970  '
  398. 3980  '
  399. 3990  GOTOXY 0,16
  400. 4000  PRINT STRING$(72," ");
  401. 4010  LENGTH = LEN(MESSAGE$) / 2
  402. 4020  GOTOXY 35 - LENGTH,16
  403. 4030  COLOR 2,0,1
  404. 4040  PRINT MESSAGE$
  405. 4050  COLOR 1,0,1
  406. 4060  FOR X = 1 TO 2500:NEXT X
  407. 4070  GOTOXY 0,16
  408. 4080  PRINT STRING$(72," ");
  409. 4090  MESSAGE$ = " "
  410. 4100  RETURN
  411. 4110  '
  412. 4120  '
  413. 4130  CHECK.DATE:
  414. 4140  '
  415. 4150  '
  416. 4160  IF LEN(DATE$) = 0 THEN DATE$ = "BAD"
  417. 4170  IF LEN(DATE$) > 8 THEN DATE$ = "BAD"
  418. 4180  IF LEN(DATE$) < 8 THEN DATE$ = "BAD"
  419. 4190  MM$ = LEFT$(DATE$,2)
  420. 4200  MM = VAL(MM$)
  421. 4210  DD$ = MID$(DATE$,4,2)
  422. 4220  DD = VAL(DD$)
  423. 4230  YY$ = RIGHT$(DATE$,2)
  424. 4240  YY = VAL(YY$)
  425. 4250  IF MM < 0 THEN DATE$ = "BAD"
  426. 4260  IF MM > 12 THEN DATE$ = "BAD"
  427. 4270  IF DD < 0 THEN DATE$ = "BAD"
  428. 4280  IF DD > 31 THEN DATE$ = "BAD"
  429. 4290  IF YY < 85 THEN DATE$ = "BAD"
  430. 4300  IF YY > 95 THEN DATE$ = "BAD"
  431. 4310  IF DATE$ = "BAD" THEN MESSAGE$ = "I N V A L I D   D A T E":GOSUB DISPLAY.MESSAGE
  432. 4320  RETURN
  433. 4330  '
  434. 4340  '
  435. 4350  SEARCH.FOR.TRANS:
  436. 4360  '
  437. 4370  '
  438. 4380  A = 0:B = 0:C = 0:D = 0
  439. 4390  SEARCH.NUMBER = TRANSNUMBER
  440. 4400  A = LEN(TO$):B = LEN(FOR$)
  441. 4410  IF A > 0 THEN SEARCH$ = TO$ ELSE SEARCH$ = FOR$
  442. 4420  FOR X = 2 TO TRANS.NUMBER
  443. 4430  GOSUB CLEAR.FIELDS
  444. 4440  TRANSNUMBER = X
  445. 4450  GOSUB READ.THE.FILE
  446. 4460  Z = X
  447. 4470  IF SEARCH.NUMBER = 0 THEN GOTO 4490
  448. 4480  IF SEARCH.NUMBER = NUMBER THEN GOSUB DISPLAY.TRANS:RETURN
  449. 4490  C = INSTR(TO$,SEARCH$)
  450. 4500  D = INSTR(FOR$,SEARCH$)
  451. 4510  IF C OR D > 0 THEN GOSUB DISPLAY.TRANS
  452. 4520  NEXT X
  453. 4530  IF C OR D = 0 THEN MESSAGE$ = "** NOT FOUND **":GOSUB DISPLAY.MESSAGE
  454. 4540  GOTO ENTER.CHOICE
  455. 4550  '
  456. 4560  '
  457. 4570  DISPLAY.SYSTEM.RECORD:
  458. 4580  '
  459. 4590  '
  460. 4600  GOSUB READ.SYSTEM.RECORD
  461. 4610  GOSUB BUILD.SYSTEM.SCREEN
  462. 4620  GOTOXY 0,9
  463. 4630  PRINT STRING$(72," ");
  464. 4640  GOTOXY 31,1:PRINT DATE$
  465. 4650  GOTOXY 31,2:PRINT USING "####";DEPOSIT
  466. 4660  GOTOXY 30,3:PRINT STRING$(10," ")
  467. 4670  GOTOXY 31,3:PRINT USING "####";TRANSNUMBER
  468. 4680  GOTOXY 31,4:PRINT TO$
  469. 4690  GOTOXY 31,5:PRINT FOR$
  470. 4700  GOTOXY 31,6:PRINT USING "####";AMOUNT
  471. 4710  GOTOXY 31,7:PRINT USING "#,###.##";BALANCE
  472. 4720  GOTOXY 44,1:PRINT OUTSTANDING$
  473. 4730  GOTO ENTER.CHOICE
  474. 4740  '
  475. 4750  '
  476. 4760  BUILD.SYSTEM.SCREEN:
  477. 4770  '
  478. 4780  '
  479. 4790  GOTOXY 0,1:PRINT "...............................";:PRINT STRING$(40," ")
  480. 4800  GOTOXY 0,2:PRINT "Current transaction number:....";:PRINT STRING$(40," ")
  481. 4810  GOTOXY 0,3:PRINT "...............................";:PRINT STRING$(40," ")
  482. 4820  GOTOXY 0,4:PRINT "...............................";:PRINT STRING$(40," ")
  483. 4830  GOTOXY 0,5:PRINT "...............................";:PRINT STRING$(40," ")
  484. 4840  GOTOXY 0,6:PRINT "Current check number:.........$";:PRINT STRING$(40," ")
  485. 4850  GOTOXY 0,7:PRINT "Current balance:..............$";:PRINT STRING$(40," ")
  486. 4860  RETURN
  487. 4870  '
  488. 4880  '
  489. 4890  DISPLAY.TRANS.TWO:
  490. 4900  '
  491. 4910  '
  492. 4920  IF CHOICE$ = "," OR CHOICE$ = "<" THEN Z = Z - 1
  493. 4930  IF CHOICE$ = "." OR CHOICE$ = ">" THEN Z = Z + 1
  494. 4940  IF Z <= 0 THEN GOTO ENTER.CHOICE
  495. 4950  IF Z > LOF(1) THEN GOTO ENTER.CHOICE
  496. 4960  GOSUB CLEAR.FIELDS
  497. 4970  IF Z = 1 THEN Z = 2
  498. 4980  TRANSNUMBER = Z
  499. 4990  GOSUB READ.THE.FILE
  500. 5000  IF CODE$ = "D" THEN GOTO DISPLAY.TRANS.TWO
  501. 5010  IF CODE$ = "E" THEN GOTO ENTER.CHOICE
  502. 5020  GOSUB BUILD.SCREEN
  503. 5030  GOTO DISPLAY.TRANS
  504. 5040  '
  505. 5050  '
  506. 5060  DISPLAY.MESSAGE.WAIT:
  507. 5070  '
  508. 5080  '
  509. 5090  GOTOXY 0,16
  510. 5100  MESSAGE$ = MESSAGE$ + "  "
  511. 5110  PRINT STRING$(72," ");
  512. 5120  LENGTH = LEN(MESSAGE$) / 2
  513. 5130  GOTOXY 35 - LENGTH,16
  514. 5140  COLOR 2,0,1
  515. 5150  PRINT MESSAGE$;
  516. 5160  COLOR 1,0,1
  517. 5170  LINE INPUT NOTHING$
  518. 5180  MESSAGE$ = " "
  519. 5190  GOTOXY 0,16
  520. 5200  PRINT STRING$(72," ");
  521. 5210  RETURN
  522. 5220  '
  523. 5230  '
  524. 5240  PRNT.CHECKS:
  525. 5250  '
  526. 5260  '
  527. 5270  ANSWER$ = "":STARTING.NUMBER = 0:ABC = 0:ABC$ = ""
  528. 5280  GOTOXY 0,16
  529. 5290  LINE INPUT "ARE YOU SURE YOU WANT TO DO A CHECK RUN ? ";ANSWER$
  530. 5300  IF LEFT$(ANSWER$,1) <> "Y" THEN GOTO ENTER.CHOICE
  531. 5310  ANSWER$ = ""
  532. 5320  GOTOXY 0,16
  533. 5330  PRINT STRING$(72," ");
  534. 5340  GOTOXY 0,16
  535. 5350  LINE INPUT "DO YOU NEED AN ALIGNMENT PRINT ? ";ANSWER$
  536. 5360  IF LEFT$(ANSWER$,1) = "Y" THEN GOSUB ALIGN:GOTO 5320
  537. 5370  GOTOXY 0,16
  538. 5380  PRINT STRING$(72," ");
  539. 5390  IF LEFT$(ANSWER$,1) = "X" THEN GOTO ENTER.CHOICE
  540. 5400  ANSWER$ = ""
  541. 5410  GOTOXY 0,16
  542. 5420  LINE INPUT "ENTER STARTING CHECK NUMBER ? ";ANSWER$
  543. 5430  IF ANSWER$ = "" THEN GOTO ENTER.CHOICE
  544. 5440  STARTING.NUMBER = VAL(ANSWER$)
  545. 5450  IF STARTING.NUMBER = 0 THEN GOTO ENTER.CHOICE
  546. 5460  GOSUB READ.SYSTEM.RECORD
  547. 5470  GOSUB BUILD.SCREEN
  548. 5480  FOR X = 2 TO TRANS.NUMBER
  549. 5490  GOSUB CLEAR.FIELDS
  550. 5500  TRANSNUMBER = X
  551. 5510  GOSUB READ.THE.FILE
  552. 5520  IF CODE$ = "E" OR CODE$ = "C" OR CODE$ = "X" THEN GOTO 6890
  553. 5530  IF AMOUNT = 0 GOTO 6890
  554. 5540  IF AMOUNT > 999.99 THEN GOTO 6890
  555. 5550  IF NUMBER < STARTING.NUMBER THEN 6890
  556. 5560  GOSUB DISPLAY.TRANS
  557. 5570  IF CODE$ = "P" THEN GOTO 5580 ELSE GOTO 5670
  558. 5580  GOTOXY 0,16
  559. 5590  ANSWER$ = ""
  560. 5600  PRINT STRING$(72," ");
  561. 5610  GOTOXY 0,16
  562. 5620  LINE INPUT "ALREADY PRINTED A CHECK FOR THIS - WANT A RE-PRINT Y/N (X TO END)  ? ";ANSWER$
  563. 5630  GOTOXY 0,16
  564. 5640  PRINT STRING$(72," ");
  565. 5650  IF LEFT$(ANSWER$,1) = "X" THEN GOTO ENTER.CHOICE
  566. 5660  IF LEFT$(ANSWER$,1) <> "Y" THEN GOTO 6890
  567. 5670  CHECK.AMOUNT$ = STR$(AMOUNT)
  568. 5680  HUNDRED$ = "":TENS$ = "":ONES$ = "":CENTS$ = "":TEENS = 0:ABC = 0
  569. 5690  ABC = INSTR(CHECK.AMOUNT$,".")
  570. 5700  IF ABC > 1 THEN 6370
  571. 5710  IF LEN(CHECK.AMOUNT$) <> 2 THEN GOTO 5750
  572. 5720  ONES$    = MID$(CHECK.AMOUNT$,2,1)
  573. 5730  GOSUB DOLLARS.TO.WORDS
  574. 5740  GOTO 6650
  575. 5750  IF LEN(CHECK.AMOUNT$) <> 3 THEN GOTO 5810
  576. 5760  TENS$    = MID$(CHECK.AMOUNT$,2,1)
  577. 5770  ONES$    = MID$(CHECK.AMOUNT$,3,1)
  578. 5780  IF AMOUNT < 20 THEN TENS$ = MID$(CHECK.AMOUNT$,2,2):ABC$ = "YES" ELSE ABC$ = "NO"
  579. 5790  GOSUB DOLLARS.TO.WORDS
  580. 5800  GOTO 6650
  581. 5810  IF LEN(CHECK.AMOUNT$) <> 4 THEN STOP
  582. 5820  HUNDREDS$ = MID$(CHECK.AMOUNT$,2,1)
  583. 5830  TEENS = VAL(MID$(CHECK.AMOUNT$,3,2))
  584. 5840  IF TEENS < 20 THEN TENS$ = MID$(CHECK.AMOUNT$,3,2):ABC$ = "YES" ELSE ABC$ = "NO"
  585. 5850  IF ABC$ = "YES" GOTO 5950
  586. 5860  TENS$     = MID$(CHECK.AMOUNT$,3,1)
  587. 5870  ONES$     = MID$(CHECK.AMOUNT$,4,1)
  588. 5880  GOSUB DOLLARS.TO.WORDS
  589. 5890  GOTO 6650
  590. 5900  '
  591. 5910  '
  592. 5920  DOLLARS.TO.WORDS:
  593. 5930  '
  594. 5940  '
  595. 5950  IF HUNDREDS$ = "1" THEN HUNDREDS$ = "ONE HUNDRED "
  596. 5960  IF HUNDREDS$ = "2" THEN HUNDREDS$ = "TWO HUNDRED "
  597. 5970  IF HUNDREDS$ = "3" THEN HUNDREDS$ = "THREE HUNDRED "
  598. 5980  IF HUNDREDS$ = "4" THEN HUNDREDS$ = "FOUR HUNDRED "
  599. 5990  IF HUNDREDS$ = "5" THEN HUNDREDS$ = "FIVE HUNDRED "
  600. 6000  IF HUNDREDS$ = "6" THEN HUNDREDS$ = "SIX HUNDRED "
  601. 6010  IF HUNDREDS$ = "7" THEN HUNDREDS$ = "SEVEN HUNDRED "
  602. 6020  IF HUNDREDS$ = "8" THEN NUNDREDS$ = "EIGHT HUNDRED "
  603. 6030  IF HUNDREDS$ = "9" THEN HUNDREDS$ = "NINE HUNDRED "
  604. 6040  IF TENS$ = "0" THEN TENS$ = " "
  605. 6050  IF TENS$ = "1" THEN TENS$ = "TEN "
  606. 6060  IF TENS$ = "2" THEN TENS$ = "TWENTY "
  607. 6070  IF TENS$ = "3" THEN TENS$ = "THIRTY "
  608. 6080  IF TENS$ = "4" THEN TENS$ = "FOURTY "
  609. 6090  IF TENS$ = "5" THEN TENS$ = "FIFTY "
  610. 6100  IF TENS$ = "6" THEN TENS$ = "SIXTY "
  611. 6110  IF TENS$ = "7" THEN TENS$ = "SEVENTY "
  612. 6120  IF TENS$ = "8" THEN TENS$ = "EIGHTY "
  613. 6130  IF TENS$ = "9" THEN TENS$ = "NINETY "
  614. 6140  IF TENS$ = "10" THEN TENS$ = "TEN "
  615. 6150  IF TENS$ = "11" THEN TENS$ = "ELEVEN "
  616. 6160  IF TENS$ = "12" THEN TENS$ = "TWELVE "
  617. 6170  IF TENS$ = "13" THEN TENS$ = "THIRTEEN "
  618. 6180  IF TENS$ = "14" THEN TENS$ = "FOURTEEN "
  619. 6190  IF TENS$ = "15" THEN TENS$ = "FIFTEEN "
  620. 6200  IF TENS$ = "16" THEN TENS$ = "SIXTEEN "
  621. 6210  IF TENS$ = "17" THEN TENS$ = "SEVENTEEN "
  622. 6220  IF TENS$ = "18" THEN TENS$ = "EIGHTEEN "
  623. 6230  IF TENS$ = "19" THEN TENS$ = "NINETEEN "
  624. 6240  IF ABC$ = "YES" THEN GOTO 6650
  625. 6250  IF ABC$ = "RETURN" THEN RETURN
  626. 6260  IF ONES$ = "0" THEN ONES$ = " "
  627. 6270  IF ONES$ = "1" THEN ONES$ = "ONE "
  628. 6280  IF ONES$ = "2" THEN ONES$ = "TWO "
  629. 6290  IF ONES$ = "3" THEN ONES$ = "THREE "
  630. 6300  IF ONES$ = "4" THEN ONES$ = "FOUR "
  631. 6310  IF ONES$ = "5" THEN ONES$ = "FIVE "
  632. 6320  IF ONES$ = "6" THEN ONES$ = "SIX "
  633. 6330  IF ONES$ = "7" THEN ONES$ = "SEVEN "
  634. 6340  IF ONES$ = "8" THEN ONES$ = "EIGHT "
  635. 6350  IF ONES$ = "9" THEN ONES$ = "NINE "
  636. 6360  RETURN
  637. 6370  IF ABC = 3 THEN ONES$ = MID$(CHECK.AMOUNT$,2,1)
  638. 6380  IF ABC = 4 THEN TENS$ = MID$(CHECK.AMOUNT$,2,1):ONES$ = MID$(CHECK.AMOUNT$,3,1)
  639. 6390  TEENS = VAL(MID$(CHECK.AMOUNT$,2,2))
  640. 6400  IF ABC = 4 AND TEENS < 20 THEN TENS$ = MID$(CHECK.AMOUNT$,2,2):ABC$ = "RETURN" ELSE ABC$ = "NO"
  641. 6410  IF ABC = 5 THEN HUNDREDS$ = MID$(CHECK.AMOUNT$,2,1):TENS$ = MID$(CHECK.AMOUNT$,3,1):ONES$ = MID$(CHECK.AMOUNT$,4,1)
  642. 6420  IF ABC = 5 AND TEENS < 20 THEN TENS$ = MID$(CHECK.AMOUNT$,3,2):ABC$ = "RETU
  643. 6430  IF ABC = 3 THEN CENTS$ = MID$(CHECK.AMOUNT$,4,2)
  644. 6440  IF ABC = 3 THEN CHECK$ = MID$(CHECK.AMOUNT$,6,1)
  645. 6450  IF ABC = 3 AND LEN(CHECK$) = 0 THEN GOTO 6640
  646. 6460  IF ABC = 3 THEN CENTS = VAL(MID$(CHECK.AMOUNT$,6,1))
  647. 6470  IF ABC = 3 AND CENTS > 5 THEN CENTS = VAL(MID$(CHECK.AMOUNT$,5,1)) + 1
  648. 6480  IF ABC = 3 AND CENTS > 0 THEN CENT$ = STR$(CENTS)
  649. 6490  IF ABC = 3 AND CENTS > 0 THEN CENTS$ = MID$(CHECK.AMOUNT$,4,1) + CENT$
  650. 6500  IF ABC = 4 THEN CENTS$ = MID$(CHECK.AMOUNT$,5,2)
  651. 6510  IF ABC = 4 THEN CHECK$ = MID$(CHECK.AMOUNT$,7,1)
  652. 6520  IF ABC = 4 AND LEN(CHECK$) = 0 THEN GOTO 6640
  653. 6530  IF ABC = 4 THEN CENTS = VAL(MID$(CHECK.AMOUNT$,7,1))
  654. 6540  IF ABC = 4 AND CENTS > 5 THEN CENTS = VAL(MID$(CHECK.AMOUNT$,6,1)) + 1
  655. 6550  IF ABC = 4 AND CENTS > 0 THEN CENT$ = STR$(CENTS)
  656. 6560  IF ABC = 4 AND CENTS > 0 THEN CENTS$ = MID$(CHECK.AMOUNT$,5,1) + CENT$
  657. 6570  IF ABC = 5 THEN CENTS$ = MID$(CHECK.AMOUNT$,6,2)
  658. 6580  IF ABC = 5 THEN CHECK$ = MID$(CHECK.AMOUNT$,8,1)
  659. 6590  IF ABC = 5 AND LEN(CHECK$) = 0 THEN GOTO 6640
  660. 6600  IF ABC = 5 THEN CENTS = VAL(MID$(CHECK.AMOUNT$,8,1))
  661. 6610  IF ABC = 5 AND CENTS > 5 THEN CENTS = VAL(MID$(CHECK.AMOUNT$,7,1)) + 1
  662. 6620  IF ABC = 5 AND CENTS > 0 THEN CENT$ = STR$(CENTS)
  663. 6630  IF ABC = 5 AND CENTS > 0 THEN CENTS$ = MID$(CHECK.AMOUNT$,6,1) + CENT$
  664. 6640  GOSUB DOLLARS.TO.WORDS
  665. 6650  LPRINT:LPRINT:LPRINT
  666. 6660  LPRINT USING "                                                                    ####";NUMBER
  667. 6670  LPRINT
  668. 6680  LPRINT TAB(8) HUNDREDS$;TENS$;ONES$;:LPRINT "DOLLARS";
  669. 6690  IF LEN(CENTS$) = 0 THEN CENTS$ = "NO"
  670. 6700  LPRINT " AND ";:LPRINT CENTS$;:LPRINT " CENTS"
  671. 6710  LPRINT
  672. 6720  LPRINT TAB(8) TO$;"   ";DATE$;:LPRINT USING "      **####.##";AMOUNT;
  673. 6730  LPRINT "**"
  674. 6740  LPRINT:LPRINT:LPRINT
  675. 6750  LPRINT TAB(8) "MEMO: ";FOR$
  676. 6760  FOR XX = 1 TO 7:LPRINT:NEXT XX
  677. 6770  LPRINT USING "                                                                   ####";NUMBER
  678. 6780  FOR XX = 1 TO 4:LPRINT:NEXT XX
  679. 6790  LPRINT TAB(5) "DATE:      ";DATE$
  680. 6800  LPRINT TAB(5) "MEMO:      ";FOR$
  681. 6810  LPRINT TAB(5);:LPRINT USING "AMOUNT:    $ #,###.##";AMOUNT
  682. 6820  LPRINT TAB(5) "PAID TO:   ";TO$
  683. 6830  FOR XX = 1 TO 13:LPRINT:NEXT XX
  684. 6840  HUNDREDS$ = "":TENS$ = "":ONES$ = "":CENTS$ = "":CHECK$ = ""
  685. 6850  CENT = 0:CENTS = 0:CENTS$ = ""
  686. 6860  CODE$ = "P"
  687. 6870  GOSUB LSET.THE.FIELDS
  688. 6880  PUT 1,TRANSNUMBER
  689. 6890  NEXT X
  690. 6900  GOTO ENTER.CHOICE
  691. 6910  '
  692. 6920  '
  693. 6930  ALIGN:
  694. 6940  '
  695. 6950  '
  696. 6960  LPRINT:LPRINT:LPRINT
  697. 6970  NUMBER = 9999
  698. 6980  LPRINT USING "                                                                    ####";NUMBER
  699. 6990  LPRINT
  700. 7000  HUNDREDS$ = "NO ":CENTS$ = "NO"
  701. 7010  LPRINT TAB(8) HUNDREDS$;TENS$;ONES$;:LPRINT "DOLLARS";
  702. 7020  IF LEN(CENTS$) = 0 THEN CENTS$ = "NO"
  703. 7030  LPRINT " AND ";:LPRINT CENTS$;:LPRINT " CENTS"
  704. 7040  LPRINT
  705. 7050  TO$ = "ALIGNMENT PRINT                    "
  706. 7060  DATE$ = "XX/XX/XX":AMOUNT = 999.99
  707. 7070  LPRINT TAB(8) TO$;"   ";DATE$;:LPRINT USING "      **####.##";AMOUNT;
  708. 7080  LPRINT "**"
  709. 7090  LPRINT:LPRINT:LPRINT
  710. 7100  FOR$ = "ALIGNMENT PRINT"
  711. 7110  LPRINT TAB(8) "MEMO: ";FOR$
  712. 7120  FOR XX = 1 TO 7:LPRINT:NEXT XX
  713. 7130  LPRINT USING "                                                                   ####";NUMBER
  714. 7140  FOR XX = 1 TO 4:LPRINT:NEXT XX
  715. 7150  LPRINT TAB(5) "DATE:      ";DATE$
  716. 7160  LPRINT TAB(5) "MEMO:      ";FOR$
  717. 7170  LPRINT TAB(5);:LPRINT USING "AMOUNT:    $ #,###.##";AMOUNT
  718. 7180  LPRINT TAB(5) "PAID TO:   ";TO$
  719. 7190  FOR XX = 1 TO 13:LPRINT:NEXT XX
  720. 7200  HUNDREDS$ = "":TENS$ = "":ONES$ = "":CENTS$ = ""
  721. 7210  RETURN
  722. 7220  '
  723. 7230  '
  724. 7240  PRNT.REPORT:
  725. 7250  '
  726. 7260  '
  727. 7270  LINE.COUNT = 0:PAGE.NUMBER = 0
  728. 7280  GOTOXY 0,16
  729. 7290  LINE INPUT "ARE YOU SURE YOU WANT TO PRINT A REPORT ? ";ANSWER$
  730. 7300  IF LEFT$(ANSWER$,1) <> "Y" THEN GOTO ENTER.CHOICE
  731. 7310  GOTOXY 0,16
  732. 7320  LINE INPUT "1. = DEPOSITS   2. = CHECKS   3. = BOTH  ? ";ANSWER$
  733. 7330  Z = VAL(ANSWER$)
  734. 7340  IF Z = 0 OR Z > 3 THEN GOTO ENTER.CHOICE
  735. 7350  GOSUB READ.SYSTEM.RECORD
  736. 7360  GOSUB BUILD.SCREEN
  737. 7370  FOR X = 2 TO TRANS.NUMBER
  738. 7380  GOSUB CLEAR.FIELDS
  739. 7390  TRANSNUMBER = X
  740. 7400  GOSUB READ.THE.FILE
  741. 7410  IF CODE$ = "D" OR CODE$ = "E" THEN GOTO 7450
  742. 7420  IF Z = 3 THEN GOSUB THE.PRINT
  743. 7430  IF Z = 1 AND DEPOSIT > 0 THEN GOSUB THE.PRINT
  744. 7440  IF Z = 2 AND AMOUNT > 0 THEN GOSUB THE.PRINT
  745. 7450  NEXT X
  746. 7460  GOTO ENTER.CHOICE
  747. 7470  '
  748. 7480  '
  749. 7490  THE.PRINT:
  750. 7500  '
  751. 7510  '
  752. 7520  IF LINE.COUNT = 0 THEN GOSUB NEW.PAGE
  753. 7530  IF LINE.COUNT > 59 THEN GOSUB NEW.PAGE
  754. 7540  GOSUB DISPLAY.TRANS
  755. 7550  LPRINT
  756. 7560  LPRINT
  757. 7570  LPRINT "Transaction date:..............   ";DATE$
  758. 7580  LPRINT USING "Deposit:......................$ #,###.##";DEPOSIT
  759. 7590  LPRINT USING "Transaction number:............  ####";NUMBER
  760. 7600  LPRINT "Check made out to:.............  ";TO$
  761. 7610  LPRINT "For:...........................  ";FOR$
  762. 7620  LPRINT USING "Amount of check:..............$ #,###.##";AMOUNT
  763. 7630  LPRINT USING "Balance on this transaction:..$ #,###.##";BALANCE
  764. 7640  LPRINT
  765. 7650  LPRINT STRING$(70,"-")
  766. 7660  LINE.COUNT = LINE.COUNT + 11
  767. 7670  RETURN
  768. 7680  '
  769. 7690  '
  770. 7700  NEW.PAGE:
  771. 7710  '
  772. 7720  '
  773. 7730  IF LINE.COUNT <> 0 THEN FOR ZZ = 1 TO 8:LPRINT:NEXT ZZ
  774. 7740  IF Z = 1 THEN LPRINT "D E P O S I T S";:LPRINT TAB(50);REPDATE$;
  775. 7750  IF Z = 2 THEN LPRINT "C H E C K S";:LPRINT TAB(50);REPDATE$;
  776. 7760  IF Z = 3 THEN LPRINT "A L L   T R A N S A C T I O N S";:LPRINT TAB(50);REPDATE$;
  777. 7770  PAGE.NUMBER = PAGE.NUMBER + 1
  778. 7780  LPRINT USING "   PAGE:  ###";PAGE.NUMBER
  779. 7790  LPRINT STRING$(70,"-")
  780. 7800  LPRINT
  781. 7810  LINE.COUNT = 5
  782. 7820  RETURN
  783. əQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə